#include <iostream>
#include <sstream>
#include "Formule.hpp"
#include "Parsers.hpp"

using namespace std;

int main(int argc, char** argv) {
  formule * une_formule;
cout << "Rentrez une formule " << endl;
    std::map<std::string, int> correspondance;
  string lue;
  if (argc >= 2) {
    lue = string(argv[1]);
    une_formule = litFormuleFichier(argv[1]);
  } else {
    stringbuf buffer;
    cin.get(buffer);
    lue = buffer.str();
    une_formule = litFormuleString(lue);
  }
  cout << "Analyse de " << lue << endl;
  cout << formule2string(une_formule) << endl;

    correspondance=numerote(une_formule,correspondance);
    afficherMap(correspondance);

    une_formule = supprimerEquivalence(une_formule);
    cout << "Formule apres la suppression des equivalence : "<< endl << formule2string(une_formule) << endl;
    correspondance=numerote(une_formule,correspondance);
    afficherMap(correspondance);

    une_formule = supprimerImplication(une_formule);
    cout << "Formule apres la suppression des implications : "<< endl << formule2string(une_formule) << endl;
    correspondance=numerote(une_formule,correspondance);
    afficherMap(correspondance);


  return 0;

}
